package br.slic.eao;

import javax.persistence.EntityManager; 
import javax.persistence.NoResultException;
import javax.persistence.Query;

import br.slic.entidade.UsuarioSistema;
import br.slic.exception.EAOException;
import br.slic.exception.UsuarioInexistente;

public class UsuarioSistemaEAO extends GenericEAO<UsuarioSistema> {

	public UsuarioSistemaEAO(EntityManager em) {
		super(UsuarioSistema.class, em);
	}	
	
	public UsuarioSistema obterUsuario(String login, String senha) throws UsuarioInexistente, EAOException {
		Query query = this.entityManager.createQuery("SELECT u FROM br.slic.entidade.UsuarioSistema u WHERE u.login = :login AND u.senha = :senha");
		query.setParameter("login", login);
		query.setParameter("senha", senha);
		try {
			UsuarioSistema usuarioSistema = (UsuarioSistema)query.getSingleResult();
			return usuarioSistema;
		} catch (NoResultException e) {
			throw new UsuarioInexistente(e);
		} catch (Exception e) {
			throw new EAOException(e);
		}
	}
	
	public UsuarioSistema obterUsuario(String login) throws EAOException {
		UsuarioSistema usuarioSistema = null;
		Query query = this.entityManager.createQuery("SELECT u FROM br.slic.entidade.UsuarioSistema u WHERE u.login = :login");
		query.setParameter("login", login);
		try {
			usuarioSistema = (UsuarioSistema)query.getSingleResult();
		} catch (NoResultException e) {
			System.out.println(e.getMessage());
		} catch (Exception e) {
			e.printStackTrace();
		}		
		return usuarioSistema;
	}

}
